package chixing.day17.homework.work3;

import java.util.HashMap;
import java.util.Map;

public class StoreHose {
    static HashMap<Integer, Product> proMap = new HashMap<>();

    /**
     * 向仓库中添加货物
     *
     * @param product 货物信息
     */
    public static void add(Product product) {
        proMap.put(product.getProId(), product);
    }

    /**
     * 怎加库存
     *
     * @param pName 要加库存的货物名称
     * @param num   要入库的数量
     */
    public static void add(String pName, long num) {
        //通过名字获取这个货物的对象，然后修改库存数量
        for (Map.Entry<Integer, Product> e : proMap.entrySet()) {
            if (e.getValue().getProName().equals(pName)) {
                e.getValue().setProStock(e.getValue().getProStock() + num);
                add(e.getValue());
            }
        }
    }

    /**
     * 出库 减少库存，若库存不足则提示失败
     *
     * @param pName 要取的货物名称
     * @param num   要取的货物数量
     */
    public static void remove(String pName, long num) {
        //通过名称获取货物对象，查看该货物对象的库存数量，将库存数量和要取的数量进行对比，若比库存数量少，正常出库，若比库存数量多则提示货物不足
        for (Map.Entry<Integer, Product> e : proMap.entrySet()) {
            if (e.getValue().getProName().equals(pName)) {
                if (e.getValue().getProStock() >= num) {//库存数 大于等于 要取的数量 ，修改库存数量
                    e.getValue().setProStock(e.getValue().getProStock() - num);
                    add(e.getValue());
                } else {
                    System.out.println("货物库存不足，该货物只剩" + e.getValue().getProStock() + "件");
                }
            }
        }
    }

    public static void display() {
        for (Map.Entry<Integer, Product> e : proMap.entrySet()) {
            System.out.println(e);
        }
    }

}
